import { connect } from 'dva'; // cnpm i dva
import React, { useEffect } from 'react'
const SetUserInfoComponent = (props: any) => {
    const { dispatch, user } = props
    console.log(props)
    // 1. 调用dva附加在组件props上的dispatch方法，发起一个action
    // 2. action是一个普通对象(plain object),一般包含type字段和payload字段（当然也可以视情况不传payload）
    useEffect(() => {
        dispatch({

            // 3. type的值实际上类似一个寻址过程，编写规则即namespace/reducerName|effectName

            // 4. dva根据你的namespace去找到对应的model，根据你的reducerName|effectName找到对应的reducer或者effect

            // 5. 回到我们这个例子即：找到namespace为user的model，并触发一个名为fetchCurrentUser的effect，payload为空。

            // 注意：实际上第5点描述的就是这个对象的键值对，这就是action，一个描述动作的普通对象。
            type: 'user/fetchCurrentUser',
            payload: { id: 2 },
            callback: (obj) => {
                console.log(obj, 'obj')
            }
        })
    }, []);
    return <>
        <div>
            {user.currentUser.name}
        </div>
    </>
}

export default connect(({ user }) => ({ user }))(SetUserInfoComponent)
